package com.cloudbroker.bcs.csvc.lightinvesting.api.service;

import com.cloudbroker.bcs.csvc.base.api.service.HSBCCSService;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.InterestCertForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.RegForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.SendMsgForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.baseRelevanted.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.AvailableMoneyForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.BindCapitalAccountForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.cashTransactions.UnbundCapitalAccountForm;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.fansRelated.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.request.interestRelated.*;
import com.cloudbroker.bcs.csvc.lightinvesting.api.vo.response.*;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by fangyf18371 on 2016/7/13.
 * 国联领投宝中台接口
 */
public interface LedService extends HSBCCSService {
    /**
     * 注册
     * @param param
     * @return
     */
    public RegBackVo func_register_authuser(RegForm param);

    /**
     * 修改昵称
     * @param param
     * @return
     */
    public ModAliasVo func_alias_mod(ModAliasForm param);

    /**
     * 组合申请
     * @param param
     * @return
     */
    public CombineApplyVo func_combine_apply(CombineApplyForm param);

    /**
     * 个股委托
     * @param param
     * @return
     */
    public StocksEntrustVo func_stock_entrust_add(StocksEntrustForm param);
//    public StocksEntrustQryBackVo addStocksEntrust(StocksEntrustForm param);
    /**
     * 组合委托
     * @param param
     * @return
     */
    public CombEntrustVo func_comb_entrust_add(CombEntrustForm param);

//    public CombEntrustQryBackVo addCombEntrust(CombEntrustForm param);

    /**
     * 关注的组合
     * @param param
     * @return
     */
//    public FocusCombineVo focusCombine(FocusCombineForm param);

    public FocusCombineQryBackVo func_combine_collect_info_qry(FocusCombineForm param);

    /**
     * 关注的投顾
     * @param param
     * @return
     */
    public FocusInterestQryBackVo func_interest_focus(FocusInterestForm param);

    /**
     * 已订阅的组合
     * @param param
     * @return
     */
//    public SubscriptionCombineVo subscriptionCombine(SubscriptionCombineForm param);
    public SubscriptionCombineQryBackVo func_comb_subscription(SubscriptionCombineForm param);

    /**
     * 组合详情
     * @param param
     * @return
     */
    public CombDetailQryBackVo func_comb_details( CombDetailForm param);
//    public CombDetailQryBackVo func_comb_details(CombDetailForm param);

    /**
     * 组合推荐信息查询
     * @param param
     * @return
     */
//    public RecommendedCombVo queryRecommendedByComb(RecommendedCombForm param);
    public RecommendedCombQryBackVo func_comb_recommend(RecommendedCombForm param);

    /**
     * 组合排名
     * @param param
     * @return
     */
//    public CombRankVo combRank(CombRankForm param);
    public CombRankQryBackVo func_comb_rank(CombRankForm param);

    /**
     * 组合关注
     * @param param
     * @return
     */
    public CombineCollectVo func_combine_collect(CombineCollectForm param);

    /**
     * 组合关注取消
     * @param param
     * @return
     */
//    public CombCollectCancelVo func_comb_focus_cancel(CombCollectCancelForm param);
    public CombCollectCancelVo func_combine_collect_cancel(CombCollectCancelForm param);

    /**
     * 组合订阅
     * @param param
     * @return
     */
    public CombSubscribeVo func_combine_focus(CombSubscribeForm param);
//    public CombSubscribeQryBackVo combSubscribe(@ServiceParam("param") CombSubscribeForm param);

    /**
     * 组合订阅取消
     * @param param
     * @return
     */
    public CombSubscribeCancelVo func_combine_focus_cancel(CombSubscribeCancelForm param);

    /**
     * 组合历史收益率查询
     * @param param
     * @return
     */
//    public CombHistoryYieldVo queryCombHistoryYield(CombHistoryYieldForm param);

    public CombHistoryYieldQryBackVo func_comb_history_Yyield_query(CombHistoryYieldForm param);

    /**
     * 组合关闭申请
     * @param param
     * @return
     */
    public CombApplyCloseVo func_comb_apply_close(CombApplyCloseForm param);

    /**
     * 组合费用查询
     * @param param
     * @return
     */
    public CombCostVo func_comb_cost_query(CombCostForm param);


//    public CombCostQryBackVo queryCombCost(CombCostForm param);

    /**
     * 组合信息修改
     * @param param
     * @return
     */
    public ModCombInfoVo func_comb_info_mod(ModCombInfoForm param);

    /**
     * 可用资金查询
     * @param param
     * @return
     */
    public AvailableMoneyQryBackVo func_available_money_query(AvailableMoneyForm param);
//    public AvailableMoneyVo func_available_money_query(AvailableMoneyForm param);

    /**
     * 可用持仓
     * @param param
     * @return
     */
    public PositionQryBackVo func_position_query(PositionForm param);

    /**
     * 当日调仓记录
     * @param param
     * @return
     */
    public WarehouseByDayQryBackVo func_warehouse_day_query(WarehouseByDayForm param);

    /**
     * 历史调仓记录
     * @param param
     * @return
     */
    public WarehouseByHistoryQryBackVo func_warehouse_history_query(WarehouseByHistoryForm param);

    /**
     * 绑定资金账号
     * @param param
     * @return
     */
//    public BindCapitalAccountQryBackVo bindCapitalAccount(BindCapitalAccountForm param);
    public BindCapitalAccountVo func_capital_account_bind(BindCapitalAccountForm param);

    /**
     * 解绑资金账号
     * @param param
     * @return
     */
    public UnbundCapitalAccountQryBackVo func_capital_account_unbund(UnbundCapitalAccountForm param);

    /**
     * 交易登录
     * @param param
     * @return
     */
//    public TradLoginQryBackVo tradLogin(@ServiceParam("param")TradLoginForm param);
    public TradLoginVo func_trad_login(TradLoginForm param);

    /**
     * 推荐投顾
     * @param param
     * @return
     */

    public RecommendInterestQryBackVo func_recommend_interest_query(RecommendInterestForm param);

    /**
     * 投顾排名
     * @param parma
     * @return
     */

    public InterestRankQryBackVo func_interest_rank_query(InterestRankForm parma);

    /**
     * 投顾关注
     * @param param
     * @return
     */
//    public FocusInterestByQryBackVo addFocusInterest(FocusInterestByForm param);
    public InterestFocusVo func_focus_interest_add( FocusInterestByForm param);

    /**
     * 投顾详情
     * @param param
     * @return
     */
//    public InterestDetailQryBackVo queryInterestDetail(InterestDetailForm param);
    public InterestDetailVo func_interest_detail_query(InterestDetailForm param);

    /**
     * 投顾历史收益率
     * @param param
     * @return
     */
    public InterestHistoryYieldQryBackVo func_interest_history_yield_query(InterestHistoryYieldForm param);

    /**
     * 消息通知
     * @param param
     * @return
     */
    public MessageAndNoticeQryBackVo  func_message_and_notice_get(MessageAndNoticeForm param);

    /**
     * 投顾认证
     * @param param
     * @return
     */
//    public InterestCertQryBackVo addInterestCert(InterestCertForm param);
    public InterestCertVo func_interest_cert__add(InterestCertForm param);

    /**
     * 组合成分查询
     * @param param
     * @return
     */
    public CombCompositionVo func_comb_composition_query(CombCompositionForm param);

    /**
     * 组合历史调仓记录查询
     * @param param
     * @return
     */
    public CombHisComentrustQryBackVo func_comb_his_comentrust(CombHisComentrustForm param);

    /**
     * 达人签约
     * @param param
     * @return
     */
    public ComuserSignVo func_comuser_sign(ComuserSignForm param);

    /**
     * 达人解约
     * @param param
     * @return
     */
    public ComuserSignCancelVo func_comuser_sign_cancel(ComuserSignCancelForm param);

    /**
     * 达人已签约客户查询
     * @param param
     * @return
     */
    public ComadviserSignQryBackVo func_comadviser_sign_qry(ComadviserSignQryForm param);

    /***
     * 用户费用参数设置
     * @param param
     * @return
     */
    public FareargVo func_farearg_set(FareargFrom param);

    /**
     * 用户费用参数查询
     * @param param
     * @return
     */
    public FareargQryVo func_farearg_qry(FareargQryForm param);

    /**
     * 用户已签约达人查询
     * @param param
     * @return
     */
    public ComuserSignQryBackVo func_comuser_sign_qry(ComuserSignQryForm param);

    /**
     * 用户基本信息获取
     * @param param
     * @return
     */
    public BasicUserInfoQryVo func_basic_user_info(BasicUserInfoForm param);

    /**
     * 投顾收藏取消
     * @param param
     * @return
     */
    public ComuserCollectCancelVo func_comuser_collect_cancel(ComuserCollectCancelForm param);

    /**
     * 用户注册与绑定业务账户
     * @param param
     * @return
     */
    public AuthuserRegbindVo func_authuser_regbind(AuthuserRegbindForm param);

    /**
     * 短信发送
     * @param param
     * @return
     */
    public SendMsgVo func_send_msg(SendMsgForm param);

    public SendMsgVo func_send_message(SendMsgForm param);

    public AuthuserRegbindVo func_services_authuser_regbind(AuthuserRegbindForm param);

    /**
     * 批量个股委托投资依据修改
     * @param param
     * @return
     */
    public ComentrustDetailReasonModVo func_comentrust_detail_reason_mod(ComentrustDetailForm param);

    /**
     * 用户签约达人历史查询
     * @param param
     * @return
     */
    public UserAdviserHisQryVo func_user_adviser_his_qry(UserAdviserHisQryForm param);

    /**
     *个股关联投顾信息查询
     * @param param
     * @return
     */
    public ProdcodeAdviserHisQryVo func_prodcode_adviser_his_qry(ProdcodeAdviserHisQryForm param);

    /**
     * 个股批量委托
     * @param param
     * @return
     */
    public BatchStocksEntrustVo func_batch_stock_entrust( BatchStocksEntrustForm param);

}
